package com.caipos.mqtt.handler;


import com.caipos.mqtt.entity.SensorDataDO;

import java.util.List;

/**
 * 传感器数据处理接口
 *
 * @param <T> 上报数据类型
 */
public interface SensorDataHandler<T> {

    /**
     * 传感器上报数据解析
     *
     * @param data 传感器上报数据
     * @return 转换后传感器上报数据
     */
    List<SensorDataDO> analysis(T data);

    /**
     * 存储传感器上报数据
     *
     * @param sensorDataDO 传感器上报数据
     */
    void dataStore(SensorDataDO sensorDataDO);

    /**
     * 数据存储逻辑处理
     *
     * @param sensorDataDO 数据
     */
    default void doDataStore(SensorDataDO sensorDataDO) {
        // default do nothing
    }
}
